<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

include_once('ExceptionDAO.php');
include_once 'util/MapError.php';
include_once 'TOMovimentacao.php';

/**
 * DAO para operações de banco para movimetação do item
 * @author Douglas Rafael
 *
 */
class DAOMovimentacao extends CI_Model {

    /**
     * Método para <b>Listar</b> todos as movimetações do item de acordo com o código
     * @param type $codigo
     * @return array
     * @throws ExceptionDAO 
     */
    public function get($codigo) {
        try {
            $this->db->where('codigo', $codigo);
            $result = $this->db->get('item_movimentacao');

            $movimentacao = new TOMovimentacao();
            if ($value = $result->row()) {
                $movimentacao->codigo = $value->codigo;
                $movimentacao->status_emprestimo = $value->status_emprestimo;
                $movimentacao->status_venda = $value->status_venda;
                $movimentacao->total_disponivel = $value->total_disponivel;
                $movimentacao->total_estoque = $value->total_estoque;
                $movimentacao->total_emprestado = $value->total_emprestado;
                $movimentacao->total_visualizado = $value->total_visualizado;

                return $movimentacao;
            } else {
                throw new ExceptionDAO('Não foi possível obter os dados do livro.');
            }
        } catch (Exception $e) {
            $num = $this->db->_error_number();
            $msg = $this->db->_error_message();

            //Traduz o tipo de erro de acordo com $num
            $erro = new MapError();
            throw new ExceptionDAO($erro->getError($num, $msg));
        }
    }

}